]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ci: Fix checking out mutter for tag pipelines
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 10 Dec 2020 23:49:21 +0000 (00:49 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Fri, 11 Dec 2020 13:46:58 +0000 (14:46 +0100)
$CI_COMMIT_REF_NAME can be a branch name or a tag, depending on the
pipeline, but our checkout script only deals with the former at the
moment.

Address this by rather than looking for a remote branch name, just
try to fetch the ref like we do for merge request pipelines.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1529>

.gitlab-ci/checkout-mutter.sh

index 0304fe29af768e7a74a46f59d62a105d313b6662..37655c48f828135f1bc85d3619c21e4f89afdf85 100755 (executable)
@@ -1,5 +1,12 @@
 #!/usr/bin/bash
 
+fetch() {
+  local remote=$1
+  local ref=$2
+
+  git fetch --quiet $remote $ref 2>/dev/null
+}
+
 mutter_target=
 
 echo -n Cloning into mutter ...
@@ -17,7 +24,7 @@ if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
   merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
 
   echo -n Looking for $merge_request_branch on remote ...
-  if git fetch -q $merge_request_remote $merge_request_branch 2>/dev/null; then
+  if fetch $merge_request_remote $merge_request_branch; then
     echo \ found
     mutter_target=FETCH_HEAD
   else
@@ -29,12 +36,12 @@ fi
 
 if [ -z "$mutter_target" ]; then
   echo -n Looking for $CI_COMMIT_REF on remote ...
-  mutter_target=$(git branch -r -l origin/$CI_COMMIT_REF_NAME)
-  if [ "$mutter_target" ]; then
+  if fetch origin $CI_COMMIT_REF; then
     echo \ found
+    mutter_target=FETCH_HEAD
   else
     echo \ not found
-    mutter_target=${mutter_target:-origin/master}
+    mutter_target=origin/master
     echo Using $mutter_target instead
   fi
 fi